home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…stman Always Clicks Twice / ADC Developer CD (1993-01) (''The Postman Always Clicks Twice'')_iso / Dev.CD 199301.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / Lists.p < prev    next >
Encoding:
Text File  |  1991-10-28  |  4.2 KB  |  108 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: Lists.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-91
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT LISTS;
  11. INTERFACE
  12. USES TYPES,QUICKDRAW,EVENTS,CONTROLS;
  13. CONST
  14.  
  15. { error codes }
  16. listRejectEvent = $1C02;
  17.  
  18. { ListType Masks }
  19. cString = $0001;  { null terminated string type }
  20. LIST_STRG = $0001;  { null terminated string type }
  21. selectOnlyOne = $0002;  { only one selection allowed }
  22. LIST_SELECT = $0002;  { single selection only }
  23.  
  24. { memFlag Codes }
  25. memDisabled = $40;  { Sets member flag to disabled }
  26. memSelected = $80;  { Sets member flag to selected }
  27.  
  28. TYPE
  29. LColorTableHndl = ^LColorTablePtr;
  30. LColorTablePtr = ^LColorTable;
  31. LColorTable = RECORD
  32.     listFrameClr : Integer; { Frame color }
  33.     listNorTextClr : Integer; { Unhighlighted text color }
  34.     listSelTextClr : Integer; { Highlighted text color }
  35.     listNorBackClr : Integer; { Unhighlighted background color }
  36.     listSelBackClr : Integer; { Highlighted backgraound color }
  37. END;
  38. MemRecHndl = ^MemRecPtr;
  39. MemRecPtr = ^MemRec;
  40. MemRec = PACKED RECORD
  41.     memPtr : Ptr; { Pointer to string, or custom }
  42.     memFlag : Byte; { Bit Flag }
  43. END;
  44.  
  45. { The MemRec is followed by n bytes determined by value of listMemSize field }
  46. ListCtlRecHndl = ^ListCtlRecPtr;
  47. ListCtlRecPtr = ^ListCtlRec;
  48. ListCtlRec = PACKED RECORD
  49.     ctlNext : CtlRecHndl; { Handle of Next Control }
  50.     ctlOwner : WindowPtr; { Window owner }
  51.     ctlRect : Rect; { Enclosing Rect }
  52.     ctlFlag : Byte; { Bit 7 visible; Bit 0 string type; Bit 1 multiple }
  53.     ctlHilite : Byte; { (not used) }
  54.     ctlValue : Integer; { First member in display }
  55.     ctlProc : LongProcPtr; { Address of list definition procedure }
  56.     ctlAction : LongProcPtr; { Address of list action procedure }
  57.     ctlData : Longint; { Low = view size; High = total members }
  58.     ctlRefCon : Longint; { Not used }
  59.     ctlColor : Ptr; { Null for default colors }
  60.     ctlMemDraw : VoidProcPtr; { Address of routine to draw members }
  61.     ctlMemHeight : Integer; { Member's Height in Pixels }
  62.     ctlMemSize : Integer; { Bytes in member record }
  63.     ctlList : MemRecPtr; { Adress of first member record in array }
  64.     ctlListBar : CtlRecHndl; { Handle of list contrlo's scroll bar control }
  65. END;
  66. ListRecHndl = ^ListRecPtr;
  67. ListRecPtr = ^ListRec;
  68. ListRec = RECORD
  69.     listRect : Rect; { Enclosing Rectangle }
  70.     listSize : Integer; { Number of List Members }
  71.     listView : Integer; { Max Viewable members }
  72.     listType : Integer; { Bit Flag }
  73.     listStart : Integer; { First member in view }
  74.     listCtl : CtlRecHndl; { List control's handle }
  75.     listDraw : VoidProcPtr; { Address of Custom drawing routine }
  76.     listMemHeight : Integer; { Height of list members }
  77.     listMemSize : Integer; { Size of Member Records }
  78.     listPointer : MemRecPtr; { Pointer to first element in MemRec array }
  79.     listRefCon : Longint; { becomes Control's refCon }
  80.     listScrollClr : BarColorsPtr; { Color table for list's scroll bar }
  81. END;
  82. FUNCTION CreateList ( theWindowPtr:WindowPtr; newListRecPtr:ListRec) : ListCtlRecHndl ;
  83. PROCEDURE DrawMember ( memberPtr:MemRecPtr; aListRecPtr:ListRec) ;
  84. PROCEDURE DrawMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) ;
  85. FUNCTION GetListDefProc: LongProcPtr ;
  86. PROCEDURE ListBootInit;
  87. PROCEDURE ListReset;
  88. PROCEDURE ListShutDown;
  89. PROCEDURE ListStartup;
  90. FUNCTION ListStatus : Boolean ;
  91. FUNCTION ListVersion : Integer ;
  92. PROCEDURE NewList ( memberPtr:MemRecPtr; newListRecPtr:ListRec);
  93. PROCEDURE NewList2 ( drawProcPtr:ProcPtr; listStart:Integer; listRef:Ref; listRefDesc:RefDescriptor; listSize:Integer; ctlHandle:CtlRecHndl) ;
  94. FUNCTION  NextMember ( memberPtr:MemRecPtr; aListRecPtr:ListRec) : MemRecPtr ;
  95. FUNCTION NextMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) : Integer ;
  96. FUNCTION ResetMember ( aListRecPtr:ListRec) : MemRecPtr ;
  97. FUNCTION ResetMember2 ( ctlHandle:CtlRecHndl) : Integer ;
  98. PROCEDURE SelectMember ( memberPtr:MemRecPtr; aListRecPtr:ListRec) ;
  99. PROCEDURE SelectMember2 ( itemNumber:Integer; ctlHandle:CtlRecHndl) ;
  100. PROCEDURE SortList ( comparePtr:VoidProcPtr; aListRecPtr:ListRec) ;
  101. PROCEDURE SortList2 ( comparePtr:ProcPtr; ctlHandle:CtlRecHndl) ;
  102.  
  103. PROCEDURE ListKey(flags:integer; var event:EventRecord; ctlHandle:CtlRecHndl);
  104. FUNCTION CompareStrings(flags:integer; s1, s2:String255Ptr): INTEGER;
  105.  
  106. IMPLEMENTATION
  107. END.
  108.